package com.ruoyi.caigou.service;

import com.ruoyi.IndexDtoByTwo;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.system.api.domain.caigou.BuyBackOrder;
import com.ruoyi.system.api.domain.caigou.BuyBackOrderDetail;

import java.util.List;

/**
 * 采购退货单Service接口
 *
 * @author wl
 * @date 2024-10-25
 */
public interface IBuyBackOrderService {
    /**
     * 查询采购退货单
     *
     * @param id 采购退货单主键
     * @return 采购退货单
     */
    public AjaxResult selectBuyBackOrderById(Integer id);
    public IndexDtoByTwo getBuyBackCountAndMoney();
    /**
     * 查询采购退货单列表
     *
     * @param buyBackOrder 采购退货单
     * @return 采购退货单集合
     */
    public List<BuyBackOrder> selectBuyBackOrderList(BuyBackOrder buyBackOrder);
    public List<BuyBackOrder> noReconList(BuyBackOrder buyBackOrder);

    /**
     * 新增采购退货单
     *
     * @param buyBackOrder 采购退货单
     * @return 结果
     */
    public AjaxResult insertBuyBackOrder(BuyBackOrder buyBackOrder);

    /**
     * 修改采购退货单
     *
     * @param buyBackOrder 采购退货单
     * @return 结果
     */
    public AjaxResult updateBuyBackOrder(BuyBackOrder buyBackOrder);

    /**
     * 批量删除采购退货单
     *
     * @param ids 需要删除的采购退货单主键集合
     * @return 结果
     */
    public AjaxResult deleteBuyBackOrderByIds(Integer[] ids);

    /**
     * 删除采购退货单信息
     *
     * @param id 采购退货单主键
     * @return 结果
     */
    public AjaxResult deleteBuyBackOrderById(Integer id);

    AjaxResult updateBuyBackOrderStatus(BuyBackOrder buyBackOrder);

    BuyBackOrder selectBuyBackOrderByBuyBackOrderCode(String buyBackOrderCode);

    AjaxResult updateBuyBackOrderDetail(BuyBackOrderDetail buyBackOrderDetail);

    AjaxResult checkStockPayStatus(Integer id);

    AjaxResult updateBuyBackOrderByOrderCode(BuyBackOrder buyBackOrder);

    AjaxResult updateBuyBackOrderDetailByOrderIdGoodsId(BuyBackOrderDetail buyBackOrderDetail);

    List<BuyBackOrder> selectBuyBackOrderListForReciveOrder(BuyBackOrder buyBackOrder);

    AjaxResult updateAfterAuditReciveOrder(BuyBackOrder buyBackOrder);

    BuyBackOrderDetail getBuyBackOrderDetailByOrderIdGoodsId(BuyBackOrderDetail buyBackOrderDetail);
}
